// packageA/pages/userlist/index.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        users: [], // 原始用户数据
        filteredUsers: [], // 过滤后的用户数据
        searchText: '', // 搜索关键词
        sortIndex: 0, // 当前排序索引
        sortOptions: ['默认排序', '注册时间', '订单数', '消费金额'],
        regDate: '', // 注册日期筛选
        showModal: false, // 是否显示详情弹窗
        currentUser: null, // 当前查看的用户
        currentDate: new Date().toISOString().split('T')[0] // 当前日期
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
  // 模拟用户数据
  this.setData({
    users: this.generateMockUsers(20),
    filteredUsers: this.generateMockUsers(20)
  });
    },
// 生成模拟用户数据
generateMockUsers(count) {
    const types = ['普通用户', 'VIP用户', '管理员'];
    const users = [];
    for (let i = 1; i <= count; i++) {
      const daysAgo = Math.floor(Math.random() * 365 * 3); // 3年内随机日期
      const registerDate = new Date();
      registerDate.setDate(registerDate.getDate() - daysAgo);
      
      users.push({
        id: i,
        account: `user${i}`,
        nickname: `用户${i}`,
        avatar: `https://picsum.photos/200/200?random=${i}`,
        registerTime: registerDate.toISOString().split('T')[0],
        orderCount: Math.floor(Math.random() * 100),
        consumption: (Math.random() * 10000).toFixed(2),
        type: types[Math.floor(Math.random() * types.length)]
      });
    }
    return users;
  },

  // 搜索输入事件
  onSearchInput(e) {
    this.setData({ searchText: e.detail.value });
  },

  // 执行搜索
  onSearch() {
    const { searchText, users } = this.data;
    if (!searchText.trim()) {
      this.setData({ filteredUsers: users });
      return;
    }
    
    const filtered = users.filter(user => 
      user.account.includes(searchText) || 
      user.nickname.includes(searchText)
    );
    this.setData({ filteredUsers: filtered });
  },

  // 排序条件改变
  onSortChange(e) {
    const index = e.detail.value;
    this.setData({ sortIndex: index });
    this.sortUsers(index);
  },

  // 注册日期筛选
  onDateChange(e) {
    const date = e.detail.value;
    this.setData({ regDate: date });
    
    if (!date) {
      this.setData({ filteredUsers: this.data.users });
      return;
    }
    
    const filtered = this.data.users.filter(user => 
      user.registerTime === date
    );
    this.setData({ filteredUsers: filtered });
  },

  // 排序用户
  sortUsers(index) {
    const users = [...this.data.filteredUsers];
    switch (index) {
      case '1': // 注册时间
        users.sort((a, b) => new Date(b.registerTime) - new Date(a.registerTime));
        break;
      case '2': // 订单数
        users.sort((a, b) => b.orderCount - a.orderCount);
        break;
      case '3': // 消费金额
        users.sort((a, b) => b.consumption - a.consumption);
        break;
      default:
        users.sort((a, b) => a.id - b.id); // 默认按ID排序
    }
    this.setData({ filteredUsers: users });
  },

  // 显示用户详情
  showUserDetail(e) {
    const id = e.currentTarget.dataset.id;
    const user = this.data.users.find(u => u.id == id);
    this.setData({ 
      currentUser: user,
      showModal: true 
    });
  },

  // 隐藏用户详情
  hideUserDetail() {
    this.setData({ showModal: false });
  },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})